<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
body {
  font-family: Helvetica, arial, sans-serif;
  font-size: 14px
  line-height: 1.6;
  padding-top: 10px;
  padding-bottom: 10px;
  background-color: white;
  padding: 30px; }

body > *:first-child {
  margin-top: 0 !important; }
body > *:last-child {
  margin-bottom: 0 !important; }

a {
  color: #4183C4; }
a.absent {
  color: #cc0000; }
a.anchor {
  display: block;
  padding-left: 30px;
  margin-left: -30px;
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0; }

h1, h2, h3, h4, h5, h6 {
  margin: 20px 0 10px;
  padding: 0;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  cursor: text;
  position: relative; }

h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
  background: url() no-repeat 10px center;
  text-decoration: none; }

h1 tt, h1 code {
  font-size: inherit; }

h2 tt, h2 code {
  font-size: inherit; }

h3 tt, h3 code {
  font-size: inherit; }

h4 tt, h4 code {
  font-size: inherit; }

h5 tt, h5 code {
  font-size: inherit; }

h6 tt, h6 code {
  font-size: inherit; }

h1 {
  font-size: 28px;
  color: black; }

h2 {
  font-size: 24px;
  border-bottom: 1px solid #cccccc;
  color: black; }

h3 {
  font-size: 18px; }

h4 {
  font-size: 16px; }

h5 {
  font-size: 14px; }

h6 {
  color: #777777;
  font-size: 14px; }

p, blockquote, ul, ol, dl, li, table, pre {
  margin: 15px 0; }

hr {
  background: transparent url() repeat-x 0 0;
  border: 0 none;
  color: #cccccc;
  height: 4px;
  padding: 0;
}

body > h2:first-child {
  margin-top: 0;
  padding-top: 0; }
body > h1:first-child {
  margin-top: 0;
  padding-top: 0; }
  body > h1:first-child + h2 {
    margin-top: 0;
    padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
  margin-top: 0;
  padding-top: 0; }

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
  margin-top: 0;
  padding-top: 0; }

h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
  margin-top: 0; }

li p.first {
  display: inline-block; }
li {
  margin: 0; }
ul, ol {
  padding-left: 30px; }

ul :first-child, ol :first-child {
  margin-top: 0; }

dl {
  padding: 0; }
  dl dt {
    font-size: 14px;
    font-weight: bold;
    font-style: italic;
    padding: 0;
    margin: 15px 0 5px; }
    dl dt:first-child {
      padding: 0; }
    dl dt > :first-child {
      margin-top: 0; }
    dl dt > :last-child {
      margin-bottom: 0; }
  dl dd {
    margin: 0 0 15px;
    padding: 0 15px; }
    dl dd > :first-child {
      margin-top: 0; }
    dl dd > :last-child {
      margin-bottom: 0; }

blockquote {
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

table {
  padding: 0;border-collapse: collapse; }
  table tr {
    border-top: 1px solid #cccccc;
    background-color: white;
    margin: 0;
    padding: 0; }
    table tr:nth-child(2n) {
      background-color: #f8f8f8; }
    table tr th {
      font-weight: bold;
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr td {
      border: 1px solid #cccccc;
      margin: 0;
      padding: 6px 13px; }
    table tr th :first-child, table tr td :first-child {
      margin-top: 0; }
    table tr th :last-child, table tr td :last-child {
      margin-bottom: 0; }

img {
  max-width: 100%; }

span.frame {
  display: block;
  overflow: hidden; }
  span.frame > span {
    border: 1px solid #dddddd;
    display: block;
    float: left;
    overflow: hidden;
    margin: 13px 0 0;
    padding: 7px;
    width: auto; }
  span.frame span img {
    display: block;
    float: left; }
  span.frame span span {
    clear: both;
    color: #333333;
    display: block;
    padding: 5px 0 0; }
span.align-center {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-center > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: center; }
  span.align-center span img {
    margin: 0 auto;
    text-align: center; }
span.align-right {
  display: block;
  overflow: hidden;
  clear: both; }
  span.align-right > span {
    display: block;
    overflow: hidden;
    margin: 13px 0 0;
    text-align: right; }
  span.align-right span img {
    margin: 0;
    text-align: right; }
span.float-left {
  display: block;
  margin-right: 13px;
  overflow: hidden;
  float: left; }
  span.float-left span {
    margin: 13px 0 0; }
span.float-right {
  display: block;
  margin-left: 13px;
  overflow: hidden;
  float: right; }
  span.float-right > span {
    display: block;
    overflow: hidden;
    margin: 13px auto 0;
    text-align: right; }

code, tt {
  margin: 0 2px;
  padding: 0 5px;
  white-space: nowrap;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px; }

pre code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: none;
  background: transparent; }

.highlight pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }

pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px; }
  pre code, pre tt {
    background-color: transparent;
    border: none; }

sup {
    font-size: 0.83em;
    vertical-align: super;
    line-height: 0;
}
* {
	-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
    body {
        width: 854px;
        margin:0 auto;
    }
}
@media print {
	table, pre {
		page-break-inside: avoid;
	}
	pre {
		word-wrap: break-word;
	}
}
</style>
<title>SDK集成指南</title>

</head>
<body>
<h2><strong><center>SDK集成指南</center></strong></h2>

<p><a name="1"></a></p>

<h3>1. 简介：</h3>

<ul>
<li>该版本的SDK支持从iOS 6.0 ～ 10.x的设备, iOS 9.0以上需添加对Http协议的兼容。</li>
<li>提供 <em><strong><font color='green'>5</font></strong></em> 种样式:横幅、全/插屏、开屏、焦点图、信息流。</li>
</ul>


<hr />

<p><a name="2"></a></p>

<h3>2. SDK的使用流程：</h3>

<ul>
<li><strong>SDK导入</strong>：在你的工程目录结构中，右键点击Classes文件夹，选择Add->Existing Files...选择对应的头文件和静态类库文件。或者将对应的头文件和静态类库文件拖入XCode工程目录结构中，在弹出的界面中选择Copy items into destination group's folder(if needed)，并确保Add To Targets中，需要使用应用联盟服务的Target App是处于选中状态。本SDK目录下，有base文件夹和其他七个按照样式分开的文件夹，base文件是必须添加的，其他七个按照所需样式选择性添加。</li>
<li><p><strong>添加图片资源</strong>：
SDK用到了一些资源图片，请一并引入您的工程，也可以根据您应用的需要，更换相关图片</p></li>

<li><p><strong>添加依赖框架</strong>：
在工程中，选择添加如下必要的框架，如有问题请参考随SDK一起发布的DEMO：</p>

<pre><code>UIKit.framework
CoreGraphics.framework
QuartzCore.framework
Foundation.framework
CoreLocation.framework
SystemConfiguration.framework
StoreKit.framework
MapKit.framework
MessageUI.framework
CoreTelephony.framework
CoreMotion.framework
AudioToolbox.framework
libz.dylib
JavaScriptCore.framework
</code></pre>
</li>
<li><p><strong><font color='red'>特别说明</font></strong>：</p>

<pre><code>在所有依赖的系统框架中，请确保将StoreKit.framework标记为 Optional
工程中添加SDK的Target，“Other Linker Flags” 项添加 “-ObjC”
</code></pre></li>
<li><p><strong>嵌入代码</strong>：</p>

<p>在需要使用应用联盟服务的文件中，import 进对应的.h 和.a文件。SDK API的使用场景可以参考“典型的应用场景”说明部分。</p></li>
<li><p><strong><font color='green'>Check list</font></strong>：</p>

<pre><code>.h 和.a 引入工程中
添加尚未添加的依赖框架，及图片资源
import 对应的.h 到具体工程文件中，调用相关API。
</code></pre></li>
</ul>


<hr />

<p><a name="3"></a></p>

<h3>3. SDK典型应用场景</h3>

<ul>
<li><p>情景一: <strong>横幅</strong></p>

<ul>
<li><p><strong>示例效果:</strong></p>

<p><div style="float:left;width:100%;"><img style='border:1px solid #cacaca' src="http://gtms04.alicdn.com/tps/i4/TB1KENMFVXXXXXFXVXXZ03gZVXX-320-568.png"/></div><div style="clear:both"></div></p></li>
<li><p><strong>添加方法:</strong> 在对应的文件中#import "MMUBanners.h" (确认对应的.a文件也已经引入工程)，使用示例代码如下：</p>
<pre><code>self.banners = [[MMUBanners alloc] initWithSlotId:@"Your slot ID" bannersDelegate:self  browserDelegate:self positionType:PositionTypeDown_middle];
[self.view addSubview:_banners];

</code></pre></li>
<li><p><em><strong><font color='green'>注:</font></strong></em></p>

<pre><code>更多设置请参看 MMUBanners.h 文件
</code></pre></li>
</ul>
</li>

<li><p>情景二: <strong>全/插屏</strong></p>

<ul>
<li><p><strong>示例效果:</strong></p>

<p><div style="float:left;width:100%;"><img style='border:1px solid #cacaca' src="http://gtms03.alicdn.com/tps/i3/TB1NzrTGXXXXXbbXFXXZ03gZVXX-320-568.png"/></a></div><div style="clear:both"></div></p></li>
<li><p><strong>添加方法:</strong> 在对应的文件中#import MMUInterstitials.h” (确认对应的.a文件也已经引入工程)</p>
<pre>
<code>self.mInterstitials = [[MMUInterstitials alloc] initInterstitialWithSlotID:@"Your slot ID" isManualRefresh:NO delegate:self borswerDelegate:self];

</code></pre></li>

<li><p><strong>部分方法说明:</strong></p></li>
<li><p>通知SDK进入展示时机,SDK会竭尽全力展示出广告,当然由于网络等问题不能立即展示
广告的,您可以通过参数isWait来控制授权SDK在获得到广告后立即展示广告</p>
<pre><code>- (void)interstitialLoadAndShow:(BOOL)isShow;
</code></pre></li>

<li><p>如果您之前进入了展示时机,并且isShow参数设置为YES,那么在需要取消等待广告展示的时候调用方法interstitialCancel来通知SDK</p>
<pre><code>- (void)interstitialCancel;
</code></pre></li>

<li><p><em><strong><font color='green'>注:</font></strong></em></p>

<pre><code>更多设置请参看 MMUInterstitials.h 文件
</code></pre></li>
</ul>
</li>
<li><p>情景三: <strong>开屏</strong></p>

<ul>
<li><p><strong>示例效果1:</strong></p>

<p><div style="float:left;width:100%;"><img src="http://dev.umeng.com/images/ios/splashview.png"/></a></div><div style="clear:both"></div></p></li>
<li><p><strong>示例效果2:</strong></p>

<p><div style="float:left;width:100%;"><img src="https://img.alicdn.com/tps/TB12NgAJpXXXXaTXXXXXXXXXXXX-320-568.png"/></a></div><div style="clear:both"></div></p></li>

<li><p><strong>添加方法:</strong> 在对应的文件中#import "MMUSplashs.h" (确认对应的.a文件也已经引入工程)</p>

<pre><code>self.splashs = [[MMUSplashs alloc] initWithSlotId:@"Your slot ID" splashDelegate:self broswerDelegate:self];
[self.splashs requestSplashAd];

</code></pre></li>

<li><p><strong>Delegate方法说明:</strong></p>

<ul>
<li><p>MMUSplashsDelegate</p>

<pre><code>【必须】 - (UIViewController *)splashAdsViewControllerForPresentingModalView; // 实现该方法，返回二跳viewcontroller的presentedViewController
- (void)splashSuccess:(id)splashAds;//开屏请求成功回调
- (void)splashAllAdFail:(id)splashAds withError:(NSError *)err;//展示广告失败的回调
- (void)splashDidPresent:(id)splashAds;//开屏已经展示的回调
- (void)splashDidClicked:(id)splashAds;// 开屏点击的回调
- (void)splashDidDismiss:(id)splashAds;//开屏已经消失的回调

</code></pre></li>
</ul>
</li>

<li><p><em><strong><font color='green'>注:</font></strong></em></p>

<pre><code>更多设置请参看 MMUSplashs.h 文件
</code></pre></li>
<li><p><strong><font color='red'>特别说明</font></strong>：</p>

<pre>
<code>开屏样式支持如示例效果2的“半屏”效果，设置MMUSplashs类的属性mReserveView(一般为展示App Logo的UIImageView)可实现该效果，如果需要“全屏”效果则不设置此属性，详情参见DEMO。
</code>
</pre></li>
</ul>
</li>


<li><p>情景四: <strong>焦点图</strong></p>

<ul>
<li><p><strong>示例效果:</strong></p>

<p><div style="float:left;width:100%;"><img style='border:1px solid #cacaca' src="http://gtms04.alicdn.com/tps/i4/TB1WE2mJpXXXXb.XXXXjXZgZVXX-320-570.png"/></a></div><div style="clear:both"></div></p></li>
<li><p><strong>添加方法:</strong> 在对应的文件中#import MMUHeadlineView.h” (确认对应的.a文件也已经引入工程)，使用示例代码如下：</p>

<pre><code>_mHeadlineView = [[MMUHeadlineView alloc] initWithFrame:CGRectMake((self.view.bounds.size.width-320)/2, 0, 320, 160) lotId:@"Your slot ID" viewController:self];
_mHeadlineView.delegate = (id<MMUHeadlineViewDelegate>)self;
_mHeadlineView.mTags = @"tags";
_mHeadlineView.backgroundColor = [UIColor grayColor];
_mHeadlineView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:_mHeadlineView];

[_mHeadlineView requestPromoterDataInBackground];

</code></pre></li>
<li><p><strong>部分方法说明:</strong></p></li>
<li><p>该方法发起请求</p>
<pre><code> - (void)requestPromoterDataInBackground:(NSArray *)promoters;
</code></pre></li>
<li><p><strong>Delegate方法说明:</strong></p>
<ul>
<li><p>该方法在需要展示的广告列表获取后被调用</p>

<pre><code>- (void)headlineView:(MMUHeadlineView *)view didLoadDataFinished:(NSInteger)promotersAmount

</code></pre></li>
<li><p>该方法在需要展示的广告列表获取失败后被调用</p>
<pre><code>- (void)headlineView:(MMUHeadlineView *)view didLoadDataFailedWithError:(NSError *)error;
</code></pre></li>
<li><p>广告被点击后的回调</p>
<pre><code>- (void)headlineView:(MMUHeadlineView *)view didClickedPromoterAtIndex:(NSInteger)index;
</code></pre></li>
</ul>
</li>
<li><p><em><strong><font color='green'>注:</font></strong></em></p>

<pre><code>更多设置请参看 MMUHeadlineView.h 文件
因为headlineView的部分delegate方法涉及后台的网络交互，建议您在headlineView销毁时首先将其delegate置空
</code></pre></li>
</ul>
</li>


<li><p>情景五: <strong>信息流</strong></p>

<ul>
<li><p><strong>示例效果:</strong></p>

<p><div style="float:left;width:100%;"><img style='border:1px solid #cacaca' src="http://gtms02.alicdn.com/tps/i2/TB1S819JpXXXXaNXVXXZ03gZVXX-320-571.png"/></a></div><div style="clear:both"></div></p></li>
<li><p><strong>添加方法:</strong> 在对应的文件中#import MMUFeeds.h” (确认对应的.a文件也已经引入工程)</p>

<pre><code>self.feedsManager = [[MMUFeeds alloc] initWithSlotId:@"Your slot ID" viewController:self];
self.feedsManager.delegate = (id<MMUFeedsDelegate>)self;
self.feedsManager.mAdcnt = 1; // 设置期望返回的创意数目
[self.feedsManager requestPromoterDataInBackground];
</code></pre></li>

<li><p><strong>Delegate方法说明:</strong></p>

<ul>
<li><p>MMUFeedsDelegate</p>

<pre><code>【可选】- (void)feeds:(MMUFeeds *)feeds didLoadDataFinished:(NSInteger)promotersAmount; //广告加载成功
【可选】- (void)feeds:(MMUFeeds *)feeds didLoadDataFailedWithError:(NSError *)error; //广告加载失败
【可选】- (void)feeds:(MMUFeeds *)feeds didClickedPromoterAtIndex:(NSInteger)promoterIndex;//广告被点击
【可选】- (void)feeds:(MMUFeeds *)feeds didUpdatedToPromoters:(NSInteger)newPromotersAmount;//广告被数据更新

</code></pre></li>
</ul>
</li>

<li><p><em><strong><font color='green'>注:</font></strong></em></p>

<pre><code>更多设置请参看 MMUFeeds.h 文件
</code></pre></li>
</ul>
</li>

</ul>

<hr/>
<p><a name="4"></a></p>
<h3>4.其它说明：</h3>
<ul>
<li><p>如果设置了相关view的delegate，建议在对应view销毁时，将其delegate置空，这些delegate大多涉及网络交互，置空可以避免一些可能出现的麻烦</p></li>
<li><p>本SDK中有隐藏的代理函数，以满足开发者针对某平台的特殊需求，他们的命名以“MMUEXT_”开头，如果开发者的某个类对象作为SDK类对象的代理，开发者自己类中成员的函数定义要注意避免冲突。</p></li>
<li><p>本SDK支持多广告平台聚合功能，可以下载我们支持的其他平台SDK、集成到SDK中。</p></li>
</ul>
<p><a name="5"></a></p>
<hr/>
<h3>5.技术支持：</h3>

<ul>
<li>相关问题欢迎邮件：afpsupport@list.alibaba-inc.com，我们会尽快答复</li>
<li>不过还是希望您在邮件前能认真阅读一下本文或本文一起的demo，或许能够找到对应问题的答案。</li>


</body>
</html>